package com.ow.dva.module.order.service;

import com.alipay.api.AlipayApiException;
import com.ow.dva.module.base.entity.json.RT;
import com.ow.dva.module.base.entity.param.DvaPage;
import com.ow.dva.module.base.service.DvaService;
import com.ow.dva.module.front.entity.Fold;
import com.ow.dva.module.order.entity.Order;
import com.ow.dva.module.passingRecord.entity.PassingRecord;

import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 订单表 服务类
 * </p>
 *
 * @author YanZengBao
 * @version V1.0
 * @since 2020-02-19
 */
public interface OrderService extends DvaService<Order> {

    /**
     * 分页获取订单表数据列表信息。
     * 创建时间：2020-02-19 YanZengBao
     * 修改时间：2020-02-19 YanZengBao 加注释
     * 修改时间：
     *
     * @param page  分页参数
     * @param param 条件参数
     * @return 带分页的数据集
     */
    DvaPage<Order> page(DvaPage<Order> page, Map<String, Object> param);

    int getJsonOrder(String beanStr);

    List<Order> selectByplateNo(Map map);

    Order selectNewOrderByRoad(String id);

    //根据车道查询  未支付 和已支付的订单
    List<Order> selectOrderListByRoad(String roadId);

    List<Order> selectByParkId(String parkId);

    List<Order> getAllTodayOrders();

    List<Order> getAllTodayOrdersByParkId(String parkId);

    List<Order> getAllTodayOrders1();

    List<Order> getAllTodayOrdersByParkId1(String parkId);

    List<Order> someDayOrdersByPark(Map map);

    List<Order> someDayOrders(Map map);

    List<Order> halfMonthOrdersByPark(Map map);

    List<Order> halfMonthOrders(Map map);

    List<Order> oneMonthOrdersByPark(Map map);

    List<Order> oneMonthOrders(Map map);

    List<Order> oneYearOrdersByPark(Map map);

    List<Order> oneYearOrders(Map map);

    /**
     * 探知扫描设备是支付宝还是微信
     * @param request
     * @return
     */
    RT isWxOrAli(HttpServletRequest request);
    /**
     * type：1-新订单  2-订单支付成功
     * 描述： 极光推送消息方法封装
     * 创建时间：2020/4/26  YanZengBao
     * 修改时间：2020/4/26  YanZengBao 加注释
     * 修改时间：
     */
    void jpush(Order order, String type) throws Exception;

    String uniformOrder(String orderId) throws AlipayApiException;

    List<Fold> countOrderByPark(String parkId);

    List<Order> sevenDayOrdersByPark(Map map);
}
